\begin{tikzpicture}
    
    \tikzstyle{rec} = [draw, anchor=west, minimum height=2.5em, minimum width=5em]
    \tikzstyle{ell} = [draw, shape=ellipse, minimum height=2.5em, anchor=west]
    \tikzstyle{arr} = [->]
    
    \node[rec, shape=chamfered rectangle, chamfered rectangle corners=north west] (一条源语句) at (0,0) {一条源语句} edge [->, dashed, out=90-30, in=90+30, loop] ();
    \node[ell] (解释程序) at ([xshift=4em]一条源语句.east) {解释程序};
    \node[rec, anchor=south] (数据) at ([yshift=2em]解释程序.north) {数据} edge [->] (解释程序.north);
    \node[rec, shape=tape, anchor=west, tape bend top=none, tape bend height=0.3em] (结果) at ([xshift=4em]解释程序.east) {结果} edge [<-] (解释程序.east);
    
    %\draw[->, dashed] ([yshift=0.5em]解释程序.west) -- ([yshift=0.5em]一条源语句.east); 
    %\draw[<-] ([yshift=-0.5em]解释程序.west) -- ([yshift=-0.5em]一条源语句.east); 
    
    \draw[->, dashed] (解释程序.180-10) -- (一条源语句.10); 
    \draw[<-] (解释程序.180+10) -- (一条源语句.-10); 

\end{tikzpicture}